The present invention relates generally to digital communications. More particularly, the invention relates to network management.
Networks are used to connect personal computers and workstations with file servers, print servers, modems, hubs, and other devices. Examples of such networks include Local Area Networks (LANs), metropolitan area networks, and wide area networks. These networks enable the personal computers and workstations to share information and resources.
Network protocols are used to define the manner in which devices or nodes communicate in a network. These protocols are designed in layers and FIG. 1 illustrates a four-layer model of an exemplary network 100. There is shown two network devices 102a, 102b, both of which can be computers. Each device 102 uses a process 104, transport 106, network 108, and data link layer 110 to exchange data with the other device 102. Application programs exist at the process layer 104 and communicate with the transport layer 106. The transport layer 106 provides reliable end-to-end data transfers, the network layer 108 provides connectionless and unreliable delivery of data, and the data link layer 110 is the hardware interface that enables the data transfer through the physical network 112.
Often, these networks use a network manager to manage operations of the devices on the network, to analyze resource performance, to identify and resolve faults, and to automate management tasks. In order for the network manager to perform these tasks, the network manager needs to discover the identity of the devices on the network. The identity of a device is typically associated with a unique Internet protocol (IP) address as well as a hardware address, such as a medium access control (MAC) address. The IP address is used to identify a device at the transport layer of the network and the MAC address is the hardware address that is used by the data link layer of the network. The IP address is often used at the process layer by various application programs and the MAC address is not directly accessible by these application programs.
Simple Network Management Protocol (SNMP) is a standard for network management that can be employed by the network manager to manage the devices on the network. Each SNMP-manageable device has a Management Information Base (MIB) that stores objects or variables representing different characteristics of a device including its IP and MAC addresses. The network manager discovers the identity of a device by sending a GetNext request to a SNMP-manageable device. The response returns the IP and/or MAC addresses.
Devices that do not support SNMP can be discovered by the Internet Control Message Protocol (ICMP). A network manager using ICMP discovers devices by performing what is commonly referred to as xe2x80x9cpinging.xe2x80x9d The network manager sends an echo message to an address and waits for a response. If a response is returned, it contains the IP and MAC addresses of the device. However, only the IP address is returned to the process layer. The MAC address resides at the data link layer and is not directly accessible to an application program at the process layer.
Currently, there is a need for application programs to have access to both IP and MAC addresses in order to perform more complex operations. However, there is no method for obtaining both of these addresses for non-SNMP devices. The conventional pinging method cannot return to the application program the MAC address of a device. Additionally, the SNMP GetNext request cannot be used to obtain the IP and MAC addresses for non-SNMP-manageable devices. Accordingly, there is a need for a mechanism that can provide application programs at the process layer, the IP and MAC address of devices on a network.
The present invention pertains to a mechanism that discovers, at the process layer, the IP and MAC addresses of those devices or nodes connected to a local and/or remote network. A network includes a number of devices, which can be computers, hubs, routers, bridges, and the like. One of the nodes acts as a local discovery node having the capability to obtain or discover the IP and MAC addresses of the nodes on a local or remote network.
The local discovery node has an SNMP agent and a local and remote IP and MAC address discovery procedure. The SNMP agent allows the local discovery node to manage the devices in accordance with the SNMP protocol. The other devices on the local network need not have an SNMP agent. The local IP and MAC address discovery procedure is an application program residing at the process layer that obtains the IP and MAC addresses of each device on the local network. The remote IP and MAC address discovery procedure is an application program residing at the process layer that obtains the IP and MAC addresses of each device on a remote network.
The local IP and MAC address discovery procedure discovers the IP and MAC addresses of the devices on the local network by first xe2x80x9cpingingxe2x80x9d each of the devices. The procedure xe2x80x9cpingsxe2x80x9d each of the IP addresses supported by the local network. Those devices that recognize their IP address respond by returning a message that indicates the IP and MAC addresses of the device. The IP and MAC addresses are stored in a table associated with the SNMP MIB. The IP address is returned to the local IP and MAC address discovery procedure and stored in an IP and MAC database that is accessible by other application programs.
Next, the local IP and MAC address discovery procedure uses the discovered IP addresses in a SNMP GetNext request to obtain the corresponding MAC addresses from the MIB. The procedure stores the MAC address in the IP and MAC database. The IP and MAC addresses can then be used by other application programs.
The remote IP and MAC address discovery procedure obtains the IP and MAC addresses of nodes on a remote network. One of the nodes on the remote network has an SNMP agent and an address translation table containing the IP and MAC addresses of the devices on the remote network. This remote node or remote discovery node is capable of sending a xe2x80x9cpingxe2x80x9d to devices on the remote network on demand from another device. The remote IP and MAC address discovery procedure runs on a device on the local network and makes requests to the remote discovery node to ping each address on the remote network. The remote IP and MAC address discovery procedure than reads the address translation table of the remote discovery node through the SNMP GetNext request. The obtained IP and MAC addresses are then stored in the IP and MAC database and can then be used by other application programs.